package com.tzl.design_pattern.proxy_pattern;

/**
 * 代理模式:<br>
 * 静态代理:<br>
 * 缺点: 1. 代理对象需要显式地声明被代理对象,如果后期需要代理其他对象,只能通过修改代码的方式实现. 2. 被代理对象如果新增了其他方法,那么代理对象也需要同步修改,不便于后期维护 动态代理:
 * <br>
 * JDK动态代理: CjLib动态代理:
 *
 * @author Zhilei Tang
 * @date Created in 2020/11/16 20:22
 */
public class ProxyTest {
  public static void main(String[] args) {
    Travel travelAgency = new TravelAgency(new TravelPerson());
    travelAgency.buyTrainTicket();

    // JDK动态代理
    Travel travel = (Travel) new JdkTravelAgency().getInstance(new TravelPerson());
    travel.buyTrainTicket();
  }
}
